import * as z from "zod";

const envSchema = z.object({
  NODE_ENV: z.string().default("development"),

  // 开启创建monorepo模式下自动生成API文件
  MONOREPO_AUTO_CREATE_API_WRAPPER: z.boolean().default(true),
  // MONOREPO 项目生成API文件的路径
  MONOREPO_API_PATH: z
    .string()
    .default("../../packages/hooks/http/apiWarpper.ts"),

  /** 端口 */
  PORT: z.coerce.number().default(9527),

  /** API列表地址，用于API文档接口 */
  RPC_API_URL: z.string().default("/api/rpc/v1"),

  /** JWT 配置 */
  JWT_SECRET: z.string().default("XREON"),

  /** 数据库配置 */
  DB_TYPE: z.string().default("mongodb"),
  DB_HOST: z.string().default("127.0.0.1"),
  DB_PORT: z.string().default("27017"),
  DB_NAME: z.string().default("mytest"),
  DB_USERNAME: z.string().default("root"),
  DB_PASSWORD: z.string().default("root"),

  //。。。更多配置项
});

const env = envSchema.parse(process.env);
export interface IEnv extends z.infer<typeof envSchema> {}

export default env;
